#include<stdio.h>
int int_cmp(const void* p1, const void* p2) {
	return(*(int*)p1 - *(int*)p2);
}
void _swap(void* p1, void* p2, int size) {
	int i = 0;
	for (i = 0; i < size; i++) {
		char tmp = *((char*)p1 + i);
		*((char*)p1 + i) = *((char*)p2 + i);
		*((char*)p2 + i) = tmp;
	}
}
void myqsort(void* base, int count, int size, int(*cmp)(void*, void*)) {
	int i, j = 0;
	for (i = 0; i < count - 1; i++) {
		for (j = 0; j < count - i - 1; j++) {
			if (cmp((char*)base + j * size, (char*)base + (j + 1) * size) > 0) {
				_swap((char*)base + j * size, (char*)base + (j + 1) * size,size);
			}
		}
	}
}
void print(int arr[], int size) {
	int i = 0;
	for (i = 0; i < size; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
}
int main() {
	int arr[] = { 1,99,85,74,52,321,142,5464,142,25,66 };
	int size = sizeof(arr) / sizeof(arr[0]);
	print(arr, size);
	myqsort(arr, size, sizeof(int), int_cmp);
	print(arr, size);
	return 0;
}